#ifndef LEETCODE_CN_CPP_PROBLEMS_88_H
#define LEETCODE_CN_CPP_PROBLEMS_88_H

#include <vector>

using namespace std;

namespace problem_88
{

class Solution
{
public:
    void merge(vector<int> &nums1, int m, vector<int> &nums2, int n)
    {
        int i = m - 1, j = n - 1, k = m + n - 1;
        while (i >= 0 || j >= 0)
        {
            if (i < 0)
            {
                nums1[k] = nums2[j];
                j -= 1;
            }
            else if (j < 0)
            {
                nums1[k] = nums1[i];
                i -= 1;
            }
            else
            {
                if (nums1[i] > nums2[j])
                {
                    nums1[k] = nums1[i];
                    i -= 1;
                }
                else
                {
                    nums1[k] = nums2[j];
                    j -= 1;
                }
            }
            k -= 1;
        }
    }
};

} // namespace problem_88

#endif //LEETCODE_CN_CPP_PROBLEMS_88_H
